﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Collections.ObjectModel;
using System.Windows.Media;


namespace ETRobocon.RaceTraking.GamePresentation
{

    public class BonusClearMarkInfoList : ObservableCollection<BonusClearMarkInfo>
    {
        public BonusClearMarkInfoList()
            : base()
        {
        }
    }

    public class BonusClearMarkInfo : INotifyPropertyChanged
    {
        private bool _mark1;
        private bool _mark2;

        public bool ClearedMark1
        {
            get { return _mark1; }
            set
            {
                _mark1 = value;
                OnPropertyChanged("ClearedMark1");
            }
        }
        public bool ClearedMark2
        {
            get { return _mark2; }
            set
            {
                _mark2 = value;
                OnPropertyChanged("ClearedMark2");
            }
        }
        public BonusClearMarkInfo()
        {

        }

        public event PropertyChangedEventHandler PropertyChanged;
        public void OnPropertyChanged(string name)
        {
            PropertyChangedEventHandler handler = PropertyChanged;
            if (handler != null)
            {
                handler(this, new PropertyChangedEventArgs(name));
            }
        }
    }

    public class TimeCountFaceInfo : INotifyPropertyChanged
    {
        private Color _brush;
        public Color Brush
        {
            get { return _brush; }
            set { _brush = value; }
        }

        public TimeCountFaceInfo()
        {
            _brush = Colors.DarkBlue;
        }

        public event PropertyChangedEventHandler PropertyChanged;
        public void OnPropertyChanged(string name)
        {
            PropertyChangedEventHandler handler = PropertyChanged;
            if (handler != null)
            {
                handler(this, new PropertyChangedEventArgs(name));
            }
        }
    }

    public class LocalGameResult : INotifyPropertyChanged
    {
        private int _bib;
        private string _teamName;
        private string _localGameName;
        private string _RunTime;
        private string _RunPoint;
        private string _RaceResult;
        private bool _shortCut1;
        private bool _middleGate1;
        private bool _loop1;
        private bool _loop2;
        private bool _goalGate;
        private bool _shortCut2;
        private bool _middleGate2;
        private bool _loop3;
        private bool _loop4;
        private bool _goal;
        private bool _stop;
        private bool _stopNoOverRun;

        public int Bib
        {
            get { return _bib; }
            set
            {
                _bib = value;
                OnPropertyChanged("Bib");
            }
        }
        public string TeamName
        {
            get
            {
                return _teamName;
            }
            set
            {
                _teamName = value;
                OnPropertyChanged("TeamName");
            }
        }
        public string LocalGameName
        {
            get
            {
                return _localGameName;
            }
            set
            {
                _localGameName = value;
                OnPropertyChanged("LocalGameName");
            }
        }

        public string RunTime
        {
            get
            {
                return _RunTime;
            }
            set
            {
                _RunTime = value;
                OnPropertyChanged("InCourceRunTime");
            }
        }
        public string RunPoint
        {
            get
            {
                return _RunPoint;
            }
            set
            {
                _RunPoint = value;
                OnPropertyChanged("InCourceRunPoint");
            }
        }
        public string RaceResult
        {
            get
            {
                return _RaceResult;
            }
            set
            {
                _RaceResult = value;
                OnPropertyChanged("InCourceRaceResult");
            }
        }

        public bool ShortCut1
        {
            get
            {
                return _shortCut1;
            }
            set
            {
                _shortCut1 = value;
                OnPropertyChanged("ShortCut1");
            }
        }

        public bool MiddleGate1
        {
            get
            {
                return _middleGate1;
            }
            set
            {
                _middleGate1 = value;
                OnPropertyChanged("MiddleGate1");
            }
        }

        public bool Loop1
        {
            get
            {
                return _loop1;
            }
            set
            {
                _loop1 = value;
                OnPropertyChanged("Loop1");
            }
        }

        public bool Loop2
        {
            get
            {
                return _loop2;
            }
            set
            {
                _loop2 = value;
                OnPropertyChanged("Loop2");
            }
        }

        public bool GoalGate1
        {
            get
            {
                return _goalGate;
            }
            set
            {
                _goalGate = value;
                OnPropertyChanged("GoalGate");
            }
        }

        public bool ShortCut2
        {
            get
            {
                return _shortCut2;
            }
            set
            {
                _shortCut2 = value;
                OnPropertyChanged("ShortCut2");
            }
        }

        public bool MiddleGate2
        {
            get
            {
                return _middleGate2;
            }
            set
            {
                _middleGate2 = value;
                OnPropertyChanged("MiddleGate2");
            }
        }
        public bool Loop3
        {
            get
            {
                return _loop3;
            }
            set
            {
                _loop3 = value;
                OnPropertyChanged("Loop3");
            }
        }
        public bool Loop4
        {
            get
            {
                return _loop4;
            }
            set
            {
                _loop4 = value;
                OnPropertyChanged("Loop4");
            }
        }
        public bool Goal
        {
            get
            {
                return _goal;
            }
            set
            {
                _goal = value;
                OnPropertyChanged("Goal");

            }
        }
        public bool Stop
        {
            get
            {
                return _stop;
            }
            set
            {
                _stop = value;
                OnPropertyChanged("Stop");
            }
        }
        public bool StopNoOverRun
        {
            get
            {
                return _stopNoOverRun;
            }
            set
            {
                _stopNoOverRun = value;
                OnPropertyChanged("StopNoOverRun");
            }
        }

        public event PropertyChangedEventHandler PropertyChanged;
        public void OnPropertyChanged(string name)
        {
            PropertyChangedEventHandler handler = PropertyChanged;
            if (handler != null)
            {
                handler(this, new PropertyChangedEventArgs(name));
            }
        }
    }
}
